#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
__author__ = "Administrator"
__name__="thread_event"
__date__="2016/7/29"
__time__="17:48"
"""
import threading
import time

# select 模型
# 程序会一直检测wait状态。
def producer():
    print u'chef:等人来买包子。。。'
    event.wait()  # 等待处于阻塞状态,set之后程序继续往下走
    event.clear() # 如果不清空，enent.wait()会一直处于true状态,下面的consumer的wait()就不生效,故需要重新将wait设置为false.

    print u'chef:做包子'
    time.sleep(5)

    print u'你的包子好了'
    event.set()

def consumer():
    print u'tom:去买包子。。。'
    event.set() # 将event改为true ，则event.wait()取消阻塞

    time.sleep(2)
    print u'等待做包子'
    while True:
        if event.isSet():
            #print event.wait()  # 有print 也要执行event.wait()
            print u'谢谢'
            break
        else:
            print u'还没好啊？？？'
            time.sleep(1)   # 可改成执行其他任务

event = threading.Event() # 处于false

p = threading.Thread(target=producer)
p.start()

c = threading.Thread(target=consumer)
c.start()